home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / UNIXLIB37B / !UnixLib37 / src / stdio / c / scanf < prev    next >
Text File  |  1996-11-09  |  1KB  |  82 lines

  1. /****************************************************************************
  2.  *
  3.  * $Source: /unixb/home/unixlib/source/unixlib37/src/stdio/c/RCS/scanf,v $
  4.  * $Date: 1996/04/19 21:32:42 $
  5.  * $Revision: 1.1 $
  6.  * $State: Rel $
  7.  * $Author: simon $
  8.  *
  9.  * $Log: scanf,v $
  10.  * Revision 1.1  1996/04/19 21:32:42  simon
  11.  * Initial revision
  12.  *
  13.  ***************************************************************************/
  14.  
  15. static const char rcs_id[] = "$Id: scanf,v 1.1 1996/04/19 21:32:42 simon Rel $";
  16.  
  17. #include <errno.h>
  18. #include <stdlib.h>
  19. #include <stdarg.h>
  20. #include <string.h>
  21. #include <stdio.h>
  22.  
  23. __STDIOLIB__
  24.  
  25. int
  26. sscanf (register const char *buf, const char *format,...)
  27. {
  28.   va_list ap;
  29.   int cnt;
  30.   static FILE f[1];
  31.  
  32.   f->i_ptr = f->i_base = (unsigned char *) buf;
  33.   f->i_cnt = f->bufsiz = strlen (buf);
  34.   f->flag = _IOREAD | _IOFBF | _IOEOF;
  35.   f->pos = 0;
  36.   f->fd = -1;
  37.  
  38.   va_start (ap, format);
  39.   if (__scanf (f, format, ap, &cnt) < 0)
  40.     {
  41.       va_end (ap);
  42.       return (-1);
  43.     }
  44.   va_end (ap);
  45.  
  46.   return (cnt);
  47. }
  48.  
  49. int
  50. fscanf (register FILE * f, const char *format,...)
  51. {
  52.   va_list ap;
  53.   int cnt;
  54.  
  55.   va_start (ap, format);
  56.   if (__scanf (f, format, ap, &cnt) < 0)
  57.     {
  58.       va_end (ap);
  59.       return (-1);
  60.     }
  61.   va_end (ap);
  62.  
  63.   return (cnt);
  64. }
  65.  
  66. int
  67. scanf (const char *format,...)
  68. {
  69.   va_list ap;
  70.   int cnt;
  71.  
  72.   va_start (ap, format);
  73.   if (__scanf (stdin, format, ap, &cnt) < 0)
  74.     {
  75.       va_end (ap);
  76.       return (-1);
  77.     }
  78.   va_end (ap);
  79.  
  80.   return (cnt);
  81. }
  82.